import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import {resolve} from 'path'

import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'

export default defineConfig({
    server: {
        host: '0.0.0.0',
        port: 8070
    },
    plugins: [
        vue(),
        // 配置自动导入 Vue API（如 ref, reactive, computed 等）
        AutoImport({
            imports: [
                'vue', // 自动导入 Vue API
                'vue-router', // 自动导入 vue-router API
                'pinia', // 自动导入 Pinia API
            ],
            resolvers: [
                ElementPlusResolver(), // 自动导入 Element Plus 的 API
            ],
            //dts: 'src/auto-imports.d.ts', // 可选，如果你使用 TypeScript，可以生成类型声明文件
        }),

        // 配置自动导入组件（如 Element UI 组件）
        Components({
            // 自动注册的组件库，可以根据需要调整
            // dirs: ['src/components'], // 自动导入的组件目录
            // extensions: ['vue'], // 自动导入的文件类型
            deep: true, // 支持子目录
            resolvers: [
                ElementPlusResolver(),
                IconsResolver(),
            ],
            //dts: 'src/components.d.ts', // 如果使用 TypeScript，生成类型声明文件
        }),
        Icons({
            autoInstall: true,
        })
    ],
    resolve: {
        alias: {
            // @ 符号指向 src 目录
            "@": resolve("src"),
        }
    },

})
